package org.dreamwork.tools;

import java.io.Serializable;

/**
 * Created by seth.yang on 2018/12/7
 */
public class UpdateInfo implements Serializable{
    /**
     * 软件分类.
     *
     * 服务器端可能会同时维护多个软件的升级服务，这个分类用于服务器端区别是哪个软件需要进行升级
     */
    public String category;

    /**
     * 当前版本
     */
    public String currentVersion;

    /**
     * 升级后的目标版本
     */
    public String targetVersion;

    /**
     * 可升级的资源项
     */
    public UpdateItem[] items;

    /**
     * 升级时间戳
     */
    public long timestamp;

    public static final class UpdateItem implements Serializable {
        /** 下载地址 */
        public String uri;

        /** 资源名称 */
        public String name;

        /**
         * 资源类型
         * jar - jar包
         * sql - 数据库脚本
         */
        public String type;

        public String version;

        /**
         * 资源操作
         *  remove  - 删除原有资源
         *  execute - 执行资源 (通常是个脚本资源)
         *  other   - 更新或新增资源
         */
        public String action;

        /**
         * 位置
         *
         * 对于非文件资源（比如 sql 脚本）该字段为 null
         */
        public String location;

        /**
         * 已下载的文件路径
         */
        public String downloadedFile;
    }
}